Image data may include information distributed among discrete image planes. The image planes may be distributed based on color (e.g. Cyan, Magenta, Yellow, and Black) or other attributes of an image (e.g. hue, saturation, value). Currently, compressing and storing image data into memory may include allocating memory for the compressed data from each plane in a sequential or a parallel manner.
In sequential memory allocation methods, memory may be allocated for one of the discrete image planes. The data from that image plane may be compressed and stored into the allocated memory. Further image plane data may be handled with further memory allocations. Sequential memory allocation may reduce memory fragmentation but may prevent parallel encoding of the image planes.
In parallel memory allocation methods, a memory allocation may be formed for each image plane. Subsequently, the data from each image plane may be compressed into the respective memory allocations. Parallel memory allocation may allow parallel handling of image data in multiple image planes, but may result in memory fragmentation or wasteful memory allocation.
Alternatively, image data may be compressed in a composite manner. Composite compression may include a single memory allocation into which information from all planes is compressed. As an example, JPEG compression handles image data in a composite manner. However, individual planes cannot be individually decompressed from the composite compressed data without decompressing all planes.
Accordingly, a need exists for image data-handling systems and methods that provide both efficient memory usage and parallel image plane compression and decompression.